package br.com.vertigo.sgci.session;

import java.util.ArrayList;
import java.util.List;

import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityHome;

import br.com.vertigo.sgci.entity.Itemrdv;
import br.com.vertigo.sgci.entity.Projeto;
import br.com.vertigo.sgci.entity.Projetotipoitem;
import br.com.vertigo.sgci.entity.Tipoitem;

@SuppressWarnings("serial")
@Name("projetotipoitemHome")
public class ProjetotipoitemHome extends EntityHome<Projetotipoitem> {

	@In(create = true)
	TipoitemHome tipoitemHome;
	@In(create = true)
	ProjetoHome projetoHome;

	public void setProjetotipoitemIdProjetotipoitem(Long id) {
		setId(id);
	}

	public Long getProjetotipoitemIdProjetotipoitem() {
		return (Long) getId();
	}

	@Override
	protected Projetotipoitem createInstance() {
		Projetotipoitem projetotipoitem = new Projetotipoitem();
		return projetotipoitem;
	}

	public void wire() {
		getInstance();
		Tipoitem tipoitem = tipoitemHome.getDefinedInstance();
		if (tipoitem != null) {
			getInstance().setTipoitem(tipoitem);
		}
		Projeto projeto = projetoHome.getDefinedInstance();
		if (projeto != null) {
			getInstance().setProjeto(projeto);
		}
	}

	public boolean isWired() {
		if (getInstance().getTipoitem() == null)
			return false;
		if (getInstance().getProjeto() == null)
			return false;
		return true;
	}

	public Projetotipoitem getDefinedInstance() {
		return isIdDefined() ? getInstance() : null;
	}

	public List<Itemrdv> getItemrdvs() {
		return getInstance() == null ? null : new ArrayList<Itemrdv>(
				getInstance().getItemrdvs());
	}

	public String persist(){
		setCreatedMessage("");
		return super.persist();
	}
	
	public String update(){
		setUpdatedMessage("");
		return super.update();
	}
	
	public String remove(){
		setDeletedMessage("");
		return super.remove();
	}
}
